package com.istock.union.user.model;

import java.io.Serializable;
import java.util.Date;

public class MenuInfo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * VARCHAR(24) 必填<br>
     * 
     */
    private String id;

    /**
     * VARCHAR(50) 必填<br>
     * 菜单名称
     */
    private String menuName;

    /**
     * VARCHAR(24) 默认值[]<br>
     * 父菜单ID
     */
    private String parentId;

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 显示顺序
     */
    private Integer orderNum;

    /**
     * VARCHAR(200) 默认值[]<br>
     * 请求地址
     */
    private String url;

    /**
     * VARCHAR(200)<br>
     * 
     */
    private String vuePath;

    /**
     * VARCHAR(200)<br>
     * 
     */
    private String vueComponent;

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 类型:M目录,C菜单,F按钮
     */
    private Integer menuType;

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 菜单状态:0显示,1隐藏
     */
    private Integer visible;

    /**
     * VARCHAR(100) 默认值[]<br>
     * 权限标识
     */
    private String perms;

    /**
     * VARCHAR(100) 默认值[]<br>
     * 菜单图标
     */
    private String icon;

    /**
     * VARCHAR(64) 默认值[]<br>
     * 创建者
     */
    private String createBy;

    /**
     * TIMESTAMP(19)<br>
     * 创建时间
     */
    private Date createTime;

    /**
     * VARCHAR(64) 默认值[]<br>
     * 更新者
     */
    private String updateBy;

    /**
     * TIMESTAMP(19)<br>
     * 更新时间
     */
    private Date updateTime;

    /**
     * VARCHAR(500) 默认值[]<br>
     * 备注
     */
    private String remark;

    /**
     * VARCHAR(24) 必填<br>
     * 获得 
     */
    public String getId() {
        return id;
    }

    /**
     * VARCHAR(24) 必填<br>
     * 设置 
     */
    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    /**
     * VARCHAR(50) 必填<br>
     * 获得 菜单名称
     */
    public String getMenuName() {
        return menuName;
    }

    /**
     * VARCHAR(50) 必填<br>
     * 设置 菜单名称
     */
    public void setMenuName(String menuName) {
        this.menuName = menuName == null ? null : menuName.trim();
    }

    /**
     * VARCHAR(24) 默认值[]<br>
     * 获得 父菜单ID
     */
    public String getParentId() {
        return parentId;
    }

    /**
     * VARCHAR(24) 默认值[]<br>
     * 设置 父菜单ID
     */
    public void setParentId(String parentId) {
        this.parentId = parentId == null ? null : parentId.trim();
    }

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 获得 显示顺序
     */
    public Integer getOrderNum() {
        return orderNum;
    }

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 设置 显示顺序
     */
    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }

    /**
     * VARCHAR(200) 默认值[]<br>
     * 获得 请求地址
     */
    public String getUrl() {
        return url;
    }

    /**
     * VARCHAR(200) 默认值[]<br>
     * 设置 请求地址
     */
    public void setUrl(String url) {
        this.url = url == null ? null : url.trim();
    }

    /**
     * VARCHAR(200)<br>
     * 获得 
     */
    public String getVuePath() {
        return vuePath;
    }

    /**
     * VARCHAR(200)<br>
     * 设置 
     */
    public void setVuePath(String vuePath) {
        this.vuePath = vuePath == null ? null : vuePath.trim();
    }

    /**
     * VARCHAR(200)<br>
     * 获得 
     */
    public String getVueComponent() {
        return vueComponent;
    }

    /**
     * VARCHAR(200)<br>
     * 设置 
     */
    public void setVueComponent(String vueComponent) {
        this.vueComponent = vueComponent == null ? null : vueComponent.trim();
    }

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 获得 类型:M目录,C菜单,F按钮
     */
    public Integer getMenuType() {
        return menuType;
    }

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 设置 类型:M目录,C菜单,F按钮
     */
    public void setMenuType(Integer menuType) {
        this.menuType = menuType;
    }

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 获得 菜单状态:0显示,1隐藏
     */
    public Integer getVisible() {
        return visible;
    }

    /**
     * DECIMAL(5) 默认值[0]<br>
     * 设置 菜单状态:0显示,1隐藏
     */
    public void setVisible(Integer visible) {
        this.visible = visible;
    }

    /**
     * VARCHAR(100) 默认值[]<br>
     * 获得 权限标识
     */
    public String getPerms() {
        return perms;
    }

    /**
     * VARCHAR(100) 默认值[]<br>
     * 设置 权限标识
     */
    public void setPerms(String perms) {
        this.perms = perms == null ? null : perms.trim();
    }

    /**
     * VARCHAR(100) 默认值[]<br>
     * 获得 菜单图标
     */
    public String getIcon() {
        return icon;
    }

    /**
     * VARCHAR(100) 默认值[]<br>
     * 设置 菜单图标
     */
    public void setIcon(String icon) {
        this.icon = icon == null ? null : icon.trim();
    }

    /**
     * VARCHAR(64) 默认值[]<br>
     * 获得 创建者
     */
    public String getCreateBy() {
        return createBy;
    }

    /**
     * VARCHAR(64) 默认值[]<br>
     * 设置 创建者
     */
    public void setCreateBy(String createBy) {
        this.createBy = createBy == null ? null : createBy.trim();
    }

    /**
     * TIMESTAMP(19)<br>
     * 获得 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * TIMESTAMP(19)<br>
     * 设置 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * VARCHAR(64) 默认值[]<br>
     * 获得 更新者
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * VARCHAR(64) 默认值[]<br>
     * 设置 更新者
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy == null ? null : updateBy.trim();
    }

    /**
     * TIMESTAMP(19)<br>
     * 获得 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * TIMESTAMP(19)<br>
     * 设置 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * VARCHAR(500) 默认值[]<br>
     * 获得 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * VARCHAR(500) 默认值[]<br>
     * 设置 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", menuName=").append(menuName);
        sb.append(", parentId=").append(parentId);
        sb.append(", orderNum=").append(orderNum);
        sb.append(", url=").append(url);
        sb.append(", vuePath=").append(vuePath);
        sb.append(", vueComponent=").append(vueComponent);
        sb.append(", menuType=").append(menuType);
        sb.append(", visible=").append(visible);
        sb.append(", perms=").append(perms);
        sb.append(", icon=").append(icon);
        sb.append(", createBy=").append(createBy);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateBy=").append(updateBy);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", remark=").append(remark);
        sb.append("]");
        return sb.toString();
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        MenuInfo other = (MenuInfo) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getMenuName() == null ? other.getMenuName() == null : this.getMenuName().equals(other.getMenuName()))
            && (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId()))
            && (this.getOrderNum() == null ? other.getOrderNum() == null : this.getOrderNum().equals(other.getOrderNum()))
            && (this.getUrl() == null ? other.getUrl() == null : this.getUrl().equals(other.getUrl()))
            && (this.getVuePath() == null ? other.getVuePath() == null : this.getVuePath().equals(other.getVuePath()))
            && (this.getVueComponent() == null ? other.getVueComponent() == null : this.getVueComponent().equals(other.getVueComponent()))
            && (this.getMenuType() == null ? other.getMenuType() == null : this.getMenuType().equals(other.getMenuType()))
            && (this.getVisible() == null ? other.getVisible() == null : this.getVisible().equals(other.getVisible()))
            && (this.getPerms() == null ? other.getPerms() == null : this.getPerms().equals(other.getPerms()))
            && (this.getIcon() == null ? other.getIcon() == null : this.getIcon().equals(other.getIcon()))
            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getMenuName() == null) ? 0 : getMenuName().hashCode());
        result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode());
        result = prime * result + ((getOrderNum() == null) ? 0 : getOrderNum().hashCode());
        result = prime * result + ((getUrl() == null) ? 0 : getUrl().hashCode());
        result = prime * result + ((getVuePath() == null) ? 0 : getVuePath().hashCode());
        result = prime * result + ((getVueComponent() == null) ? 0 : getVueComponent().hashCode());
        result = prime * result + ((getMenuType() == null) ? 0 : getMenuType().hashCode());
        result = prime * result + ((getVisible() == null) ? 0 : getVisible().hashCode());
        result = prime * result + ((getPerms() == null) ? 0 : getPerms().hashCode());
        result = prime * result + ((getIcon() == null) ? 0 : getIcon().hashCode());
        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        return result;
    }
}